// 封装一个读取文件数据并转成对象的方法
// callback 是获取数据后，处理数据操作
const fs = require('fs');
const path = require('path');

function readData(callback) {
    fs.readFile(path.join(__dirname, 'data', 'data.json'), 'utf-8', (err, data) => {
        if (err) {
            return console.log('文件读取失败', err);
        }
        // 1.构建模板引擎对象
        let obj = JSON.parse(data);

        // if (callback) {
        //     // 把数据交给回调函数处理
        //     callback(obj);
        // }

        callback && callback(obj);

        // console.log(obj);

        // // 对数组进行排序
        // obj.list.sort((a, b) => b.id - a.id);
        // console.log(obj);

        // // 2.关联模板和数据，得到串
        // let str = template(path.join(__dirname, 'views', 'index.html'), obj);
        // // 3.返回串
        // res.setHeader('content-type', 'text/html');
        // res.end(str);
    });
}

// 封装一个写数据的方法
function writeData(data, callback) {

    fs.writeFile(path.join(__dirname, 'data', 'data.json'), data, (err) => {
        if (err) {
            return console.log('写入失败', err);
        }

        callback && callback();
        // // 设置状态码跳转
        // res.statusCode = 302;
        // // 设置响应头
        // res.setHeader('location', '/index');

        // res.end();
    });

}

const tools = {
    readData,
    writeData
}

module.exports = tools;